Zero Configuration

設定ファイルを書かずにすぐ使い始められるソフトウェア設計の原則。「合理的なデフォルト(sensible defaults)」を用意し、必要な場合のみオーバーライドできる設計。

原則

「Convention over Configuration(CoC)」とも呼ばれ、Ruby on Railsによって広められた。以下の思想に基づく:

Next.jsにおける適用

[[Next.js]]の設計原則として、Guillermo Rauchが「Zero Setup」を掲げた:

これにより、React単体で必要だった大量の設定(Webpack、Babel等)が不要になった。

段階的開示との関係

Zero Configurationは段階的開示と相補的な関係にある:

初心者:  設定なしで動く(ゼロ設定)
         ↓
中級者:  必要に応じてカスタマイズ(next.config.js等)
         ↓
上級者:  深いカスタマイズ(独自プラグイン、低レベルAPI)

入門障壁を下げながら、熟練者には十分な深さを提供する。

トレードオフ

Zero Configurationには副作用もある:

「暗黙から明示へ」という方向への転換は、Zero Configのデメリットへの対処でもある。

他フレームワークの例

フレームワーク Zero Config要素
Next.js ファイルシステムルーティング、自動最適化
Vite モダンブラウザ向けデフォルト設定
Create React App Webpack設定の隠蔽
Ruby on Rails ディレクトリ構造の規約

関連